package body v8.Class_Object is
   function Set
     (this    : in out Object;
      key     : v8.Class_Value.Pointer; -- Handle<Value>
      value   : v8.Class_Value.Pointer; -- Handle<Value>
      attribs : Property_Attribute.Enum := Property_Attribute.None
     ) return bool
   is
      function Invoke
        (this    : in out Object;
         key     : v8.Class_Value.Pointer;
         value   : v8.Class_Value.Pointer;
         attribs : Property_Attribute.Enum
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object3SetENS_6HandleINS_5ValueEEES3_NS_17PropertyAttributeE");
   begin
      return Invoke (this, key, value, attribs);
   end Set;
   pragma Inline (Set);

   function Set
     (this  : in out Object;
      index : uint32_t;
      value : v8.Class_Value.Pointer
     ) return bool
   is
      function Invoke
        (this  : in out Object;
         index : uint32_t;
         value : v8.Class_Value.Pointer
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object3SetEjNS_6HandleINS_5ValueEEE");
   begin
      return Invoke (this, index, value);
   end Set;
   pragma Inline (Set);

   function Get
     (this : in out Object;
      key  : v8.Class_Value.Pointer
     ) return v8.Class_Value.Pointer
   is
      function Invoke
        (this : in out Object;
         key  : v8.Class_Value.Pointer
        ) return v8.Class_Value.Pointer;
      pragma Import (CPP, Invoke, "_ZN2v86Object3GetENS_6HandleINS_5ValueEEE");
   begin
      return Invoke (this, key);
   end Get;
   pragma Inline (Get);

   function Get
     (this  : in out Object;
      index : uint32_t
     ) return v8.Class_Value.Pointer
   is
      function Invoke
        (this  : in out Object;
         index : uint32_t
        ) return v8.Class_Value.Pointer;
      pragma Import (CPP, Invoke, "_ZN2v86Object3GetEj");
   begin
      return Invoke (this, index);
   end Get;
   pragma Inline (Get);

   function Has
     (this : in out Object;
      key  : v8.Class_String.Pointer
     ) return bool
   is
      function Invoke
        (this : in out Object;
         key  : v8.Class_String.Pointer
        ) return Bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object3HasENS_6HandleINS_6StringEEE");
   begin
      return Invoke (this, key);
   end Has;
   pragma Inline (Has);

   function Delete
     (this : in out Object;
      key  : v8.Class_String.Pointer
     ) return bool
   is
      function Invoke
        (this : in out Object;
         key  : v8.Class_String.Pointer
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object6DeleteENS_6HandleINS_6StringEEE");
   begin
      return Invoke (this, key);
   end Delete;
   pragma Inline (Delete);

   function Force_Delete
     (this : in out Object;
      key  : v8.Class_String.Pointer
     ) return bool
   is
      function Invoke
        (this : in out Object;
         key  : v8.Class_String.Pointer
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object11ForceDeleteENS_6HandleINS_5ValueEEE");
   begin
      return Invoke (this, key);
   end Force_Delete;
   pragma Inline (Force_Delete);

   function Has
     (this   : in out Object;
      index  : uint32_t
     ) return bool
   is
      function Invoke
        (this   : in out Object;
         index  : uint32_t
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object3HasEj");
   begin
      return Invoke (this, index);
   end Has;
   pragma Inline (Has);

   function Delete
     (this  : in out Object;
      index : uint32_t
     ) return bool
   is
      function Invoke
        (this  : in out Object;
         index : uint32_t
        ) return bool;
      pragma Import (CPP, Invoke, "_ZN2v86Object6DeleteEj");
   begin
      return Invoke (this, index);
   end Delete;
   pragma Inline (Delete);



end v8.Class_Object;
